package com.hqd.ch03.v16.registry;


import com.hqd.ch03.v16.config.BeanDefinition;

/**
 * bean定义缓存接口
 */
public interface BeanDefinitionRegistry {
    /**
     * 添加bean定义
     *
     * @param beanName
     * @param beanDefinition
     */
    void registerBeanDefinition(String beanName, BeanDefinition beanDefinition);

    /**
     * 删除bean定义
     *
     * @param beanName
     */
    void removeBeanDefinition(String beanName);

    /**
     * 获取bean定义
     *
     * @param beanName
     * @return
     */
    BeanDefinition getBeanDefinition(String beanName);

    /**
     * 是否包含bean定义
     *
     * @param beanName
     * @return
     */
    boolean containsBeanDefinition(String beanName);

    /**
     * 获取所有bean名称
     *
     * @return
     */
    String[] getBeanDefinitionNames();
}
